/**************************************************************************************
*
*	Copyright (C) 2009 - 2012 Brent Andrew O. Chua - See LICENSE.txt for more info.
*		
*	Filename	-	ParameterSamplerState.h
*
*	Description -	
*
*	Comments	-	Yes, we don't keep track of the ref here. It would probably be too
*						slow if we keep on adding and releasing references in here.
*
*	Modification History:
*			Name			   Date					Description
*			MrCodeSushi	-	09/25/2012	-	Creation of this file
**************************************************************************************/
#ifndef _PSX_PARAMETER_SAMPLER_STATE_H_
#define _PSX_PARAMETER_SAMPLER_STATE_H_

#include "PulseSTD.h"
#include "IParameter.h"
#include "SamplerState.h"

namespace Pulse
{
	class ParameterSamplerState : public IParameter
	{
	public:

		ParameterSamplerState( void ) { m_pState = PSX_NULL; }

		ParameterSamplerState( ParameterSamplerState &rhs );

		virtual ~ParameterSamplerState( void ) { }

		virtual void SetData( void *pData ) { SetSamplerState((SamplerState*)pData); }

		virtual void SetData( IParameter *pParam );

		void SetSamplerState( SamplerState *pState ) { m_pState = pState; IncrementChangeValue(); }

		SamplerState * GetSamplerState( void ) { return m_pState; }

		virtual EParameter::Type GetType( void ) const { return EParameter::SAMPLER; }

	private:

		SamplerState *m_pState;
	};

}

#endif /* _PSX_PARAMETER_SAMPLER_STATE_H_ */